home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / COM / ProTERM Mac1.2a.sit / ProTERM Mac1.2a / Macros / Contributed / Greg's Extras / %PT Indexor next >
Text File  |  1996-03-21  |  1KB  |  75 lines

  1. // indexor shell
  2.  
  3. FUNC main(STR fname)
  4. {
  5.  INT win,size,resize,target;
  6.  INT left,right;
  7.  STR tmpl,item;
  8.  
  9.  IF (ARGC() == 0) {
  10.   WIN_NOTE(1,"Must be run from additions menu");
  11.   RETURN;
  12.  }
  13.  
  14.  IF (fname == "") {
  15.   WIN_NOTE(1,"Filename not passed");
  16.   RETURN;
  17.  }
  18.  
  19.  IF (!is_file(fname+".txt")) {
  20.   WIN_NOTE(1,"Missing File "+fname+".txt");
  21.   RETURN;
  22.  }
  23.  
  24.  IF (WIN_FIND(FN_WHAT(fname),"DLG*") != 0) { RETURN }
  25.  
  26.  WIN_RUNNING(0);
  27.  
  28.  UI_CMD('cmd=menu call="#Sub:Open" file=&%*2s type=@ttro',fname+".txt");
  29.  target = WIN_ACTIVE(0);
  30.  
  31.  tmpl = D_NEW(0,0,240,350,4+128+256,FN_WHAT(fname))+
  32.   D_FONT("monaco",9,1)+
  33.   D_LIST("WT-10 WL-10",100,200,"~list")+
  34.   D_GROW();
  35.  
  36.  win = D_OPEN(tmpl);
  37.  D_CONTENT(win,"~list",index());
  38.  
  39.  resize = 1;
  40.  WHILE (1) {
  41.   IF (resize) {
  42.    resize = 0;
  43.    size = WIN_SIZE(win,0,0);
  44.    size = D_SIZE(win,"~list",NUM_HI16(size)-13,NUM_MIN(NUM_LO16(size)+2,200));
  45.    WIN_SIZE(win,NUM_LO16(size)-2,NUM_HI16(size)+13);
  46.   }
  47.  
  48.   SWITCH(D_EVENT(win,50,"BGL")) {
  49.  
  50.    CASE "": {
  51.     IF (WIN_TYPE(target) != "EDIT") { BREAK }
  52.    }
  53.  
  54.    CASE "@CLOSE": { BREAK }
  55.  
  56.    CASE "~list": {
  57.     item = D_GET(win,"~list");
  58.     left = NUM_LONG(STR_MID(item,13));
  59.     right = NUM_LONG(STR_MID(item,17));
  60.     IO_SETPOS(target,left);
  61.     IO_SETSEL(target,right);
  62.     WIN_ACTIVE(target);
  63.    }
  64.  
  65.    CASE "@GROW": {
  66.     resize = 1;
  67.    }
  68.  
  69.   }
  70.  }
  71.  D_CLOSE(win);
  72.  RETURN;
  73. }
  74.  
  75.